'\" t
.\"     Title: ccndc
.\"    Author: [see the "AUTHOR" section]
.\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/>
.\"      Date: 01/14/2014
.\"    Manual: \ \&
.\"    Source: \ \& 0.8.2
.\"  Language: English
.\"
.TH "CCNDC" "1" "01/14/2014" "\ \& 0\&.8\&.2" "\ \&"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.\" http://bugs.debian.org/507673
.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.ie \n(.g .ds Aq \(aq
.el       .ds Aq '
.\" -----------------------------------------------------------------
.\" * set default formatting
.\" -----------------------------------------------------------------
.\" disable hyphenation
.nh
.\" disable justification (adjust text to left margin only)
.ad l
.\" -----------------------------------------------------------------
.\" * MAIN CONTENT STARTS HERE *
.\" -----------------------------------------------------------------
.SH "NAME"
ccndc \- manipulate CCNx forwarding table
.SH "SYNOPSIS"
.sp
\fBccndc\fR [\fB\-v\fR] [\fB\-t\fR \fIlifetime\fR] \fB\-d\fR
.sp
\fBccndc\fR [\fB\-v\fR] [\fB\-t\fR \fIlifetime\fR] \fB\-f\fR \fIconfigfile\fR
.sp
\fBccndc\fR [\fB\-v\fR] [\fB\-t\fR \fIlifetime\fR] (\fBadd\fR|\fBdel\fR|\fBrenew\fR) \fIuri\fR (\fBudp\fR|\fBtcp\fR) \fIhost\fR [\fIport\fR [\fIflags\fR [\fImcastttl\fR [\fImcastif\fR]]]]
.sp
\fBccndc\fR [\fB\-v\fR] [\fB\-t\fR \fIlifetime\fR] (\fBadd\fR|\fBdel\fR) \fIuri\fR \fBface\fR \fIfaceid\fR
.sp
\fBccndc\fR [\fB\-v\fR] (\fBcreate\fR|\fBdestroy\fR) (\fBudp\fR|\fBtcp\fR) \fIhost\fR [\fIport\fR [\fIflags\fR [\fImcastttl\fR [\fImcastif\fR]]]]
.sp
\fBccndc\fR [\fB\-v\fR] \fBdestroy\fR \fBface\fR \fIfaceid\fR
.sp
\fBccndc\fR [\fB\-v\fR] \fBdestroyface\fR \fIfaceid\fR
.sp
\fBccndc\fR [\fB\-v\fR] \fBsetstrategy\fR \fIuri\fR \fIstrategy\fR [\fIparameters\fR [\fIlifetime\fR]]
.sp
\fBccndc\fR [\fB\-v\fR] \fBgetstrategy\fR \fIuri\fR
.sp
\fBccndc\fR [\fB\-v\fR] \fBremovestrategy\fR \fIuri\fR
.sp
\fBccndc\fR [\fB\-v\fR] [\fB\-t\fR \fIlifetime\fR] \fBsrv\fR
.SH "DESCRIPTION"
.sp
\fBccndc\fR is a simple routing utility/daemon that configures the forwarding table (FIB) in a \fBccnd(1)\fR\&. It may be used either as a command to add or delete static entries in the CCNx FIB (roughly analogous to the \fBroute(8)\fR utility for manipulating an IP routing table)\&. Where a face is specified it may either be by the parameters (\fIhost\fR, \fIport\fR, etc\&.) or by face number\&. Faces can be created or destroyed without reference to a prefix, or will be created automatically if the parameters are given\&. \fBccndc\fR may also run as a daemon that will dynamically create Faces and FIB entries to forward certain CCNx Interests based upon DNS SRV records\&. The Interests that can be dynamically routed in this way are those have an initial name component that is a legal DNS name, for which there is a DNS SRV record pointing to an endpoint for tunneling CCNx protocol traffic over the Internet\&.
.sp
\fBccndc\fR also supports configuration files containing sets of commands\&.
.SH "OPTIONS"
.PP
\fB\-d\fR
.RS 4
enter dynamic mode and create FIB entries based on DNS SRV records
.RE
.PP
\fB\-f\fR
.RS 4
add or delete FIB entries based on contents of
\fIconfigfile\fR
.RE
.PP
\fB\-t\fR
.RS 4
lifetime (seconds) of prefix entries created by subsequent operations including those created by dynamic mode and "srv" command\&.
.RE
.PP
\fB\-v\fR
.RS 4
increase logging level
.RE
.PP
\fBadd\fR \fIuri\fR (\fBudp\fR|\fBtcp\fR) \fIhost\fR [\fIport\fR [\fIflags\fR [\fImcastttl\fR [\fImcastif\fR]]]]
.RS 4
add a FIB entry based on the parameters, creating the face if necessary\&.
.RE
.PP
\fBrenew\fR \fIuri\fR (\fBudp\fR|\fBtcp\fR) \fIhost\fR [\fIport\fR [\fIflags\fR [\fImcastttl\fR [\fImcastif\fR]]]]
.RS 4
destroy any matching face then recreate with the given parameters and add a FIB entry\&.
.RE
.PP
\fBadd\fR \fIuri\fR \fBface\fR \fIfaceid\fR
.RS 4
add a FIB entry to the specified face\&.
.RE
.PP
\fBdel\fR \fIuri\fR (\fBudp\fR|\fBtcp\fR) \fIhost\fR [\fIport\fR [\fIflags\fR [\fImcastttl\fR [\fImcastif\fR]]]]
.RS 4
delete a FIB entry from the face specified by the parameters\&.
.RE
.PP
\fBdel\fR \fIuri\fR \fBface\fR \fIfaceid\fR
.RS 4
remove a FIB entry from the specified face number\&.
.RE
.PP
\fBcreate\fR (\fBudp\fR|\fBtcp\fR) \fIhost\fR [\fIport\fR [\fImcastttl\fR [\fImcastif\fR]]]
.RS 4
create a face based on the parameters\&. No FIB entry is made\&.
.RE
.PP
\fBdestroy\fR (\fBudp\fR|\fBtcp\fR) \fIhost\fR [\fIport\fR [\fImcastttl\fR [\fImcastif\fR]]]
.RS 4
remove a face based on the parameters\&.
.RE
.PP
\fBdestroy\fR \fBface\fR \fIfaceid\fR, \fBdestroyface\fR \fIfaceid\fR
.RS 4
destroy a face based on the numeric faceid\&.
.RE
.PP
\fBsetstrategy\fR \fIuri\fR \fIstrategy\fR [\fIparameters\fR [\fIlifetime\fR]]
.RS 4
associate the named
\fIstrategy\fR
with the prefix
\fIuri\fR\&. The
\fIparameters\fR
are passed along to the strategy; their interpretation is strategy\-specific\&. Lifetime is in seconds\&. Note \- lifetime is currently ignored by ccnd\&.
.RE
.PP
\fBgetstrategy\fR \fIuri\fR
.RS 4
get strategy information associated with the prefix
\fIuri\fR, and print on standard output\&. If no strategy has been associated the prefix, the inherited strategy and its prefix is printed instead\&.
.RE
.PP
\fBremovestrategy\fR \fIuri\fR
.RS 4
remove the strategy associated with the prefix
\fIuri\fR\&. output is the same as getstrategy\&.
.RE
.PP
\fBsrv\fR
.RS 4
create a face and FIB entry (for ccnx:/) based on the results of an SRV lookup using the default DNS search rules\&. Queries _ccnx\&._tcp and _ccnx\&._udp\&.
.RE
.SH "PREDEFINED STRATEGIES"
.PP
\fBdefault\fR
.RS 4
Prefers the fastest responding face, and performs experiments to determine if other faces can provide faster response\&. This strategy also operates efficiently in environments where link quality changes or a face becomes unresponsive, but does not make use of multiple paths or sources\&.
.RE
.PP
\fBloadsharing\fR
.RS 4
Distributes Interests amongst the available faces based on the unanswered queue size\&. This strategy operates most efficiently when there are multiple physical interfaces and the network is the limiting performance factor\&. Because it sends each interest to a single face, it is not recommended for chat\-like or discovery applications, or in the presence of lossy links\&.
.RE
.PP
\fBparallel\fR
.RS 4
Sends Interests to all available faces in parallel\&. This strategy attempts to mask unstable links or poorly performing faces by redundantly sending Interests\&. This increases the overall network load and local processing overhead, and is not recommended when the links are of high quality\&.
.RE
.PP
\fBtrace\fR
.RS 4
Produces log output that is useful during the development of a new strategy\&. The first portion of the parameter string (before the first occurance of a slash) is the name of the traced strategy\&. The remainder (after this slash) forms the traced strategy\(cqs parameter string\&.
.RE
.SH "CONFIGURATION FILE"
.sp
\fBccndc\fR will process a configuration file if specified with the \fB\-f\fR flag\&. The configuration file may contain a sequence of commands with the same parameters as may be specified on the \fBccndc\fR command\-line\&. Comments in the file are prefixed with #\&. Here is a sample:
.sp
.if n \{\
.RS 4
.\}
.nf
# Sample ccnd\&.conf for use with ccndc that will route all CCN URIs with
# an example\&.com prefix to a link\-local multicast on an ephemeral port\&.
#
add ccnx:/example\&.com/ udp 224\&.0\&.0\&.204 52428
.fi
.if n \{\
.RE
.\}
.SH "EXIT STATUS"
.PP
\fB0\fR
.RS 4
Success
.RE
.PP
\fB1\fR
.RS 4
Failure (syntax or usage error; communication error)
.RE
.SH "AUTHOR"
.sp
Nick Briggs
